var _columns = [
    {checkbox: true},
    {title: "标识符", field: 'id'},
    {title: '序号', field: 'showId'},
    {field: 'indicator', title: '指标'},
    {field: 'rank', title: '等级'},
    {field: 'content', title: '内容'},
]

var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#data_table').bootstrapTable({
            url: '/meta_clean_product_sub3/select',         //请求后台的URL（*）
            method: 'get',                      //请求方式（*）
            toolbar: '#toolbar',                //工具按钮用哪个容器
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "client",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber: 1,                       //初始化加载第一页，默认第一页
            pageSize: 100,                       //每页的记录行数（*）
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
            showColumns: true,                  //是否显示所有的列
            showRefresh: true,                  //是否显示刷新按钮
            clickToSelect: true,                //是否启用点击选中行
            uniqueId: "id",                     //每一行的唯一标识，一般为主键列
            columns: _columns,
            //sortable: true,                     //是否启用排序
            //sortOrder: "desc",                  //排序方式
            onLoadSuccess: function (data) {
                //合并序号和指标
                mergeRows();
            },
        });
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            lastId: meta_id
        };
        return temp;
    };
    return oTableInit;
};

var ButtonInit = function () {
    var oInit = new Object();

    oInit.Init = function () {
        //初始化页面上面的按钮事件
        //新增按钮
        $("#btn_add").click(function () {
            $('#new_data').modal();
            $('#new_indicator').val('');
            $('#new_rank').val('');
            $('#new_content').val('');
        });
        //新增框内的提交
        $('#new_data_submit').on('click', function () {
            var indicator = $('#new_indicator').val()
            var rank = $('#new_rank').val()
            var content = $('#new_content').val()

            $.ajax({
                type: "get",
                url: "/meta_clean_product_sub3/insert",
                data: {
                    'indicator': indicator,
                    'rank': rank,
                    'content': content,
                    'lastId': meta_id
                },
                success: function (data) {
                    if (data['status'] == "success") {
                        bootoast({
                            message: '插入成功',
                            position: 'top',
                            type: 'success',
                            timeout: 2,
                        });

                        $("#new_data").modal('hide');
                        $('#new_indicator').val("");
                        $('#new_rank').val("");
                        $('#new_content').val("");

                        $("#data_table").bootstrapTable('refresh');
                    } else {
                        bootoast({
                            message: '插入失败\n' + data['msg'],
                            position: 'top',
                            type: 'danger',
                            timeout: 2,
                        });
                    }
                },
                error: function () {
                    bootoast({
                        message: '通讯异常',
                        position: 'top',
                        type: 'danger',
                        timeout: 1.5,
                    });
                }
            });
        });
        // 删除按钮
        $("#btn_delete").click(function () {
            var selections = $("#data_table").bootstrapTable('getSelections');
            if (selections.length <= 0) {
                bootoast({
                    message: '请选择有效数据',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }
            values = [];
            for (var i = 0; i < selections.length; i++)
                values.push(selections[i].id);
            bootbox.confirm({
                message: "确认要删除选择的数据吗？",
                locale: 'zh_CN',
                title: '操作提示',
                callback: function (result) {
                    if (result) {
                        $.ajax({
                            type: "post",
                            url: "/meta_clean_product_sub3/delete",
                            data: JSON.stringify(values),
                            contentType: "application/json",
                            success: function (data) {
                                if (data['status'] == "success") {
                                    bootoast({
                                        message: '删除成功',
                                        position: 'top',
                                        type: 'success',
                                        timeout: 1.5,
                                    });
                                    $("#data_table").bootstrapTable('refresh');
                                } else {
                                    bootoast({
                                        message: '删除失败\n' + data['msg'],
                                        position: 'top',
                                        type: 'danger',
                                        timeout: 1.5,
                                    });
                                }
                            }
                        });
                    }
                }
            })
        });

        //编辑按钮
        $("#btn_edit").click(function () {
            var selections = $("#data_table").bootstrapTable('getSelections');
            if (selections.length > 1) {
                bootoast({
                    message: '只能选择一行进行编辑',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }
            if (selections.length <= 0) {
                bootoast({
                    message: '请选择有效数据',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }
            $('#edit_data').modal();
            $('#edit_indicator').val(selections[0]['indicator']);
            $('#edit_rank').val(selections[0]['rank']);
            $('#edit_content').val(selections[0]['content']);
        });
        // 编辑框内的提交
        $('#edit_data_submit').click(function () {
            var selections = $("#data_table").bootstrapTable('getSelections');
            var id = selections[0]['id'];
            var indicator = $('#edit_indicator').val();
            var rank = $('#edit_rank').val();
            var content = $('#edit_content').val();
            $.ajax({
                type: "get",
                url: "/meta_clean_product_sub3/update",
                data: {
                    'id': id,
                    'indicator': indicator,
                    'rank': rank,
                    'content': content
                },
                success: function (data) {
                    if (data['status'] == "success") {
                        bootoast({
                            message: '更新成功',
                            position: 'top',
                            type: 'success',
                            timeout: 2,
                        });
                        $("#edit_data").modal('hide');
                        $("#data_table").bootstrapTable('refresh');
                    } else {
                        bootoast({
                            message: '更新失败\n' + data['msg'],
                            position: 'top',
                            type: 'danger',
                            timeout: 2,
                        });
                    }
                },
                error: function () {
                    bootoast({
                        message: '通讯异常',
                        position: 'top',
                        type: 'danger',
                        timeout: 1.5,
                    });
                }
            });
        });
        // 返回按钮
        $("#btn_return").click(function () {
           $('#page-wrapper').load('pages/meta_clean_product.html');
        });
    };

    return oInit;
};

//合并序号和指标
function mergeRows() {
    //获取表格数据
    var data = $('#data_table').bootstrapTable('getData', false);

    //序号
    var showId = 0;

    //声明一个map计算相同属性值在data对象出现的次数和
    var sortMap = {};
    for (var i = 0; i < data.length; i++) {
        var key = data[i]['indicator']
        if (sortMap.hasOwnProperty(key)) {
            sortMap[key] = sortMap[key] * 1 + 1;
        } else {
            sortMap[key] = 1;

            //产生序号
            showId++;
            $('#data_table').bootstrapTable('updateCell', {
                index: i,
                field: 'showId',
                value: showId
            });
        }
    }
    //合并单元格
    var index = 0;
    for (var prop in sortMap) {
        var count = sortMap[prop] * 1;
        //合并指标
        $('#data_table').bootstrapTable('mergeCells', {index: index, field: 'indicator', colspan: 1, rowspan: count});
        //合并序号
        $('#data_table').bootstrapTable('mergeCells', {index: index, field: 'showId', colspan: 1, rowspan: count});
        index += count;
    }
}

$(function () {

    if(standardStatus == "废止") {
        btn_add.style.display = "none";
        btn_edit.style.display = "none";
        btn_delete.style.display = "none";
    }

    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();

    //3.隐藏列
    $('#data_table').bootstrapTable('hideColumn', 'id');
});